/**
 * Copyright(c) 2013 Jade Techonologies Co., Ltd.
 *
 * History:
 *   13-4-18 下午3:54 Created by dwzhang
 */
package com.jade.framework.base.security.license;

import java.util.Collection;

/**
 * 产品定义.
 *
 * @author dwzhang
 * @version 1.0 13-4-18 下午3:54
 */
public interface Product extends Entity
{
    /**
     * 返回私有参数
     *
     * @param name 参数名称
     * @return 私有参数
     */
    public String getPrivateProperty(String name);

    /**
     * 返回功能模块名称列表
     *
     * @return [String[]]
     */
    public Collection<String> getModuleNames();

    /**
     * 返回所有功能模块信息
     *
     * @return [Function]
     */
    public Collection<Module> getModules();

    /**
     * 返回功能模块信息
     *
     * @return [Function]
     */
    public Collection<Module> getModules(boolean isSystem);

    /**
     * 根据功能模块名返回功能模块信息
     *
     * @param name 功能模块名
     * @return [Function]
     */
    public Module getModule(String name);
}
